import request from '@/utils/request'

// 查询商品列表
//当发送GET请求时，Axios会遍历params对象的键值对，将它们编码并拼接到URL后面。
// 例如，如果query是{page: 1, size: 10}，那么生成的URL会是/api/product/list?page=1&size=10。
// 还要提到特殊字符的处理，比如空格会被转成%20，中文会使用encodeURIComponent进行编码。这能确保参数传递的正确
export function listProduct(query) {
  return request({
    url: '/api/product/list',
    method: 'get',
    params: query
  })
}

// 查询商品详细信息
export function getProduct(productId) {
  return request({
    url: '/api/product/' + productId,
    method: 'get'
  })
}

// 新增商品
export function addProduct(data) {
  return request({
    url: '/api/product/add',
    method: 'post',
    data: data
  })
}

// 修改商品
export function updateProduct(data) {
  return request({
    url: '/api/product/update',
    method: 'put',
    data: data
  })
}

// 删除商品
export function delProduct(productId) {
  return request({
    url: '/api/product/delete/' + productId,
    method: 'delete'
  })
}

// 批量删除商品
export function batchDeleteProduct(productIds) {
  return request({
    url: '/api/product/batchDelete',
    method: 'delete',
    data: productIds
  })
}

// 导出商品
export function exportProduct(query) {
  return request({
    url: '/api/product/export',
    method: 'get',
    params: query,
    responseType: 'blob'
  })
}

// 导入商品
export function importProduct(data) {
  return request({
    url: '/api/product/import',
    method: 'post',
    data: data
  })
}

// 获取所有商品分类
export function listAllCategory() {
  return request({
    url: '/api/product/category/listAll',
    method: 'get'
  })
}

// 查询分类列表（分页）
export function listCategory(query) {
  return request({
    url: '/api/product/category/list',
    method: 'get',
    params: query
  })
}

// 查询分类详细
export function getCategory(categoryId) {
  return request({
    url: '/api/product/category/' + categoryId,
    method: 'get'
  })
}

// 新增分类
export function addCategory(data) {
  return request({
    url: '/api/product/category/add',
    method: 'post',
    data: data
  })
}

// 修改分类
export function updateCategory(data) {
  return request({
    url: '/api/product/category/update',
    method: 'put',
    data: data
  })
}

// 删除分类
export function delCategory(categoryId) {
  return request({
    url: '/api/product/category/delete/' + categoryId,
    method: 'delete'
  })
}
